Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Heightmap</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Heightmap"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Heightmap rootpage-Heightmap skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Heightmap</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">This article is about modifying the geometry of surfaces - or the illusion of this - in computer graphics. For techniques which relate to recording distances from a viewpoint, see <a href="Depth_map" title="Depth map">depth map</a>.</div>
<style data-mw-deduplicate="TemplateStyles:r1251242444">
/* start https://en.wikipedia.org/ */


.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style>


<p>In <a href="Computer_graphics" title="Computer graphics">computer graphics</a>, a <b>heightmap</b> or <b>heightfield</b> is a <a href="Raster_graphics" title="Raster graphics">raster image</a> used mainly as <a href="Discrete_Global_Grid" class="mw-redirect" title="Discrete Global Grid">Discrete Global Grid</a> in <a href="Digital_elevation_model#Types_of_DEM" title="Digital elevation model">secondary elevation modeling</a>. Each pixel stores values, such as surface <a href="Elevation" title="Elevation">elevation</a> data, for display in <a href="3D_computer_graphics" title="3D computer graphics">3D computer graphics</a>. A heightmap can be used in <a href="Bump_mapping" title="Bump mapping">bump mapping</a> to calculate where this 3D data would create shadow in a material, in <a href="Displacement_mapping" title="Displacement mapping">displacement mapping</a> to displace the actual geometric position of points over the textured surface, or for terrain where the heightmap is converted into a 3D mesh.
</p><p>A heightmap contains one <a href="Channel_(digital_image)" title="Channel (digital image)">channel</a> interpreted as a distance of <a href="Displacement_(vector)" class="mw-redirect" title="Displacement (vector)">displacement</a> or "height" from the "floor" of a surface and sometimes <a href="Visualization_(computer_graphics)" class="mw-redirect" title="Visualization (computer graphics)">visualized</a> as <a href="Luma_(video)" title="Luma (video)">luma</a> of a <a href="Grayscale" title="Grayscale">grayscale</a> image, with black representing minimum height and white representing maximum height.
When the map is rendered, the designer can specify the amount of displacement for each unit of the height channel, which corresponds to the “contrast” of the image.
Heightmaps can be stored by themselves in existing grayscale image formats, with or without specialized <a href="Metadata" title="Metadata">metadata</a>,
or in specialized <a href="File_format" title="File format">file formats</a> such as Daylon Leveller, GenesisIV and <a href="Terragen" title="Terragen">Terragen</a> documents.
</p><p>One may also exploit the use of individual color channels to increase detail. For example, a standard RGB 8-bit image can only show 256 values of grey and hence only 256 heights. By using colors, a greater number of heights can be stored (for a 24-bit image, 256<sup>3</sup> = 16,777,216 heights can be represented (256<sup>4</sup> = 4,294,967,296 if the alpha channel is also used)). This technique is especially useful where height varies slightly over a large area. Using only grey values, because the heights must be mapped to only 256 values, the rendered terrain appears flat, with "steps" in certain places.
</p>

<p>Heightmaps are commonly used in <a href="Geographic_information_system" title="Geographic information system">geographic information systems</a>, where they are called <a href="Digital_elevation_model" title="Digital elevation model">digital elevation models</a>.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Creation">Creation</h2></div>
<p>Heightmaps can be created by hand with a classical paint program or a special terrain editor. These editors visualize the terrain in 3D and allow the user to modify the surface. Normally there are tools to raise, lower, smooth or erode the terrain. Another way to create a terrain is to use a terrain generation algorithm. This can be for example a 2D <a href="Simplex_noise" title="Simplex noise">simplex noise</a> function <sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> or by <a href="Diffusion-limited_aggregation" title="Diffusion-limited aggregation">diffusion-limited aggregation</a>.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> Another method is to <a href="3D_reconstruction" title="3D reconstruction">reconstruct</a> heightmaps from real world data, for example using <a href="Synthetic_aperture_radar" class="mw-redirect" title="Synthetic aperture radar">synthetic aperture radar</a>.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Use">Use</h2></div>
<p>Heightmaps are widely used in <a href="Terrain_rendering" class="mw-redirect" title="Terrain rendering">terrain rendering</a> software and modern <a href="Video_game" title="Video game">video games</a>. Heightmaps are an ideal way to store digital terrain elevations; compared to a regular polygonal mesh, they require substantially less memory for a given level of detail. Most modern 3D computer modelling programs are capable of using data from heightmaps in the form of <a href="Bump_mapping" title="Bump mapping">bump</a>, <a href="Normal_mapping" title="Normal mapping">normal</a>, or <a href="Displacement_mapping" title="Displacement mapping">displacement</a> maps to quickly and precisely create complex terrain and other surfaces.
</p><p>In the earliest games using software rendering, the elements often represented heights of columns of <a href="Voxel" title="Voxel">voxels</a> rendered with <a href="Ray_casting" title="Ray casting">ray casting</a>.
In most newer games, the elements represent the height coordinate of <a href="Polygon_mesh" title="Polygon mesh">polygons in a mesh</a>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Rendering_software">Rendering software</h3></div>
<ul><li><a href="Terragen" title="Terragen">Terragen</a> – terrain renderer</li>
<li><a href="Picogen" title="Picogen">Picogen</a> – terrain renderer and heightmap creation tool</li>
<li>Materialize – Free PBR (<a href="Physically_based_rendering" title="Physically based rendering">Physically Based Rendering</a>) creation tool</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Generating_software">Generating software</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Scenery_generator#Software" title="Scenery generator">Scenery generator §&nbsp;Software</a></div>
<div class="mw-heading mw-heading3"><h3 id="Trivia">Trivia</h3></div>
<p>Although the terms heightmap and heightfield are often indistinguishable from each other, there is still a small difference in the terms. Heightmap comes from the mathematical term 'map' and heightfield comes from the mathematical term 'vector field'. Heightmap is the more correct description because most heightfields are not a (vector) field in mathematical terms but they are always a map (in mathematical terms as well as in the visual representation).
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="3D_scanner" class="mw-redirect" title="3D scanner">3D scanner</a></li>
<li><a href="Digital_elevation_model" title="Digital elevation model">Digital elevation model</a></li>
<li><a href="Draw_distance" title="Draw distance">Draw distance</a></li>
<li><a href="Range_imaging" title="Range imaging">Range imaging</a></li>
<li><a href="Texture_splatting" title="Texture splatting">Texture splatting</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text">Artificial Terrain Generation</span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://voxels.blogspot.de/2014/01/procedural-terrain-heightmap-generation.html">DLA based Terrains</a></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text">Kirscht, Martin, and Carsten Rinke. <a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.54.1157&amp;rep=rep1&amp;type=pdf">"3D Reconstruction of Buildings and Vegetation from Synthetic Aperture Radar (SAR) Images."</a> MVA. 1998.</span>
</li>
</ol></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://www.povray.org/documentation/view/3.6.1/279/">POV-Ray&nbsp;: Documentation&nbsp;: 2.4.1.5 Height Field</a></li>
<li><a rel="nofollow" class="external text" href="https://3dgrayscale.com/what-is-a-3d-heightmap/">:3DGrayscale - Understanding 3D Heightmaps </a></li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-08-07" href="https://en.wikipedia.org/wiki/?title=Heightmap&amp;oldid=1304722046">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>